1. Field of the Invention
The present invention is directed to a system for creating transformation tables that are used to convert color values from one type of device, such as a scanner, to another type of device, such as a printer, and, more particularly, to a system in which the input and output table grid points increase in spacing from some area of importance, such as neutral, allowing tables to be reduced in size while maintaining transform accuracy in a region of interest.
2. Description of the Related Art
Color signals or values produced by or for one device, such as a color scanner, often need to be output to or represented by another device, such as a printer or display. Even though these devices may operate within the same color space such as RGB or u'v'L* the color values or signals produced by the first device need to be transformed into color values or signals suitable for the second device. To perform this transformation, several different sub-transformations are generally performed. Typical transformations that could be performed are illustrated in FIG. 1 when a system is providing color signals from a scanner to a display. This figure shows a transformation from a scanner 10 to a display 12 which includes input 14 and output 16 transforms and intermediate transforms 18 and 20 which make the image displayed on display 12 as close a visual match as possible to the input image scanned scanner 10 (See U.S. Pat No. 5,208,911). These transforms are typically multiterm equations represented in a computer 22 as a series of transform look-up and interpolation tables as depicted in FIG. 2 rather than as a series of formulas. This is because table look-ups and interpolations are much faster than formula computations for the computer formulas required in obtaining high quality color. Each transformation table includes a set of one-dimensional input tables 30, a three-dimensional grid table 32 and a set of one-dimensional output tables 34.
Because the grid tables 32 are used for interpolation, they need to be large in order to provide a desired level of accuracy in the final result. For pleasing transforms in particular, table sizes can become prohibitive. For example, consider a pleasing transform which modifies the color of flesh tones while leaving other colors unmodified. Such a transform has a high degree of curvature in color space yet must be tightly controlled. When such a function is represented as an interpolation table using a linear grid, the grid size must grow to 32.times.32.times.32 (or 32,768 points) to achieve the degree of accuracy required in typical graphic arts applications.
FIGS. 4 and 5 graphically illustrate the nature of the problem. Each figure shows a two-dimensional slice through color space. The particular space they show is the CIE u'v'L* space. The two-dimensional slice is perpendicular to the luminance axis, so that it indicates chrominance. The curved dotted line indicates the set of all physically realizable colors, while the grids 36 and 38 indicate the coverage given by a 16.times.16 point and a 32.times.32 point uniform grid. The distance between adjacent grid points in FIG. 4 is large enough to introduce unacceptable inaccuracies when representing pleasing transforms as interpolation tables.
What is needed is a system that reduces the size of the table yet maintains the accuracy desired by the color industry.
As noted above a transformation can be represented as a set of one-dimensional input look-up tables, a set of three-dimensional intermediate tables, and a set of one-dimensional output look-up tables. Because of interactions between the three types of tables, there is some ambiguity in how any given total transformation can be represented. In other words it is possible to modify the input tables, for instance, and compensate for the modification by making corresponding modifications to the output and/or intermediate tables. For any given transformation, as described in this application, this ambiguity can be exploited to produce a table representation which minimizes the size of the interpolation tables required to achieve a given level of accuracy. This minimization is often desirable for two reasons. First, it reduces the storage and memory required to use the table. Second, it reduces the amount of time required to compute the table. In situations where the table is being used to represent an interactive color move, this table computation time can be significant.
In practice, this optimization is often not performed. There are two reasons for this. The first is that there is no simple algorithmic procedure for optimizing the tables for a particular transformation. The second is that composing two transforms is more difficult when they have different input tables. For these reasons it is desirable to be able to use a standard set of input tables which work well for a broad class of transformations.
What is needed is a method for producing transform representations which do a good job of representing transformations whose output values depend strongly on the hue of the input and less strongly on other aspects of the input color. It is also desirable that the representations reduce the size of the grid tables.
Large color transform tables take a long time to compute and compose as well as access and also occupy a substantial region of random access memory space during real time transformations. As a result, what is needed is a table that is fast to compute and use and occupies less space than conventional tables.